#include"process.h"
#include<string.h>
#include<unistd.h>

#define SIZE 101
#define STYLE '#'

//v2
void FlushProcess(const char* tips,double total,double current)
{
    const char* lable="|/-\\";
    int len = strlen(lable);
    static int index=0;
    char buffer[SIZE];
    memset(buffer,0,sizeof(buffer));
    
    double rate=current*100.0/total;
    int num=(int)rate;
    int i;
    for(i=0;i<num;i++)
    {
        buffer[i]=STYLE;
    }
    
    printf("%s...[%-100s][%.1lf\%][%c]\r",tips,buffer,rate,lable[index++]);
    fflush(stdout);
    
    index%=len;
    if(num>=100)
    {
        printf("\n");
    }
}


//v1
void process()
{
    int rate=0;
    char buffer[SIZE];
    memset(buffer,0,sizeof(buffer));
    const char* lable="|/-\\";
    int len=strlen(lable);

    while(rate<=100)
    {
        printf("[%-100s][%d\%][%c]\r",buffer,rate,lable[rate%len]);
        fflush(stdout);
        buffer[rate]=STYLE;
        rate++;
        usleep(50000);
    }
    printf("\n");
}
